using C4Net.Data.Attributes;
using C4Net.JC3IEDM.Enums;

namespace C4Net.JC3IEDM.Interfaces
{
    /// <summary>
    /// Interface for the entity AirfieldType that represents the table AIRFIELD_TYPE
	/// 
	/// A FACILITY-TYPE that is a class of an area prepared for the accommodation (including any buildings, installations, or equipment) of landing and take off of aircraft.
    /// </summary>
	[EntId(10000308)]
    [EntName("AIRFIELD-TYPE")]
    [EntTableName("AIRFIELD_TYPE")]
    [EntDepth(2)]
    public interface IAirfieldType
    {
        #region - Properties -
		
        /// <summary>
        /// Gets or sets the value of the column airfield_type_id
		///
		/// The unique value, or set of characters, assigned to represent a specific OBJECT-TYPE and to distinguish it from all other OBJECT-TYPEs.
        /// </summary>
        /// <value>
        /// Value of the column airfield_type_id
        /// </value>
        [AttrIx(100001)]
		[AttrName("airfield-type-id")]
		[AttrColumnName("airfield_type_id")]
        [AttrSeqnr(1)]
        [PrimaryKey]
        [ForeignKey]
        [Mandatory]
        [DomId(100000906)]
        [DataLength(20)]
        [DataDecimals(0)]
        decimal Id { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column use_cat_code
		///
		/// The specific value indicating an airport's main use.
        /// </summary>
        /// <value>
        /// Value of the column use_cat_code
        /// </value>
        [AttrIx(100002)]
		[AttrName("airfield-type-use-category-code")]
		[AttrColumnName("use_cat_code")]
        [AttrSeqnr(2)]
        [Mandatory]
        [DomId(100004256)]
        [DataLength(6)]
        [DataDecimals(0)]
        AirfieldTypeUseCategoryEnum UseCategory { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column creator_id
		///
		/// A value assigned to the row to identify the organisation which created that row. This is referenced by an application level business rule to an OBJ_ITEM entry with a cat_code = OR and to a corresponding ORG subtype entry.
        /// </summary>
        /// <value>
        /// Value of the column creator_id
        /// </value>
        [AttrIx(100003)]
		[AttrName("physical model only")]
		[AttrColumnName("creator_id")]
        [AttrSeqnr(3)]
        [Mandatory]
        [DomId(100000913)]
        [DataLength(20)]
        [DataDecimals(0)]
        decimal CreatorId { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column update_seqnr
		///
		/// An absolute sequence number, assigned to represent the validity (in terms of seniority) of a certain data item.
        /// </summary>
        /// <value>
        /// Value of the column update_seqnr
        /// </value>
        [AttrIx(100004)]
		[AttrName("physical model only")]
		[AttrColumnName("update_seqnr")]
        [AttrSeqnr(4)]
        [Mandatory]
        [DomId(100000914)]
        [DataLength(15)]
        [DataDecimals(0)]
        long UpdateSeqnr { get; set; }
		
		
        #endregion
    }
}
